This invention relates generally to social networking, and in particular to inferring the topics of communications of social networking system users.
Social networking systems commonly provide mechanisms allowing users to interact within their social networks. A social networking system user may be an individual or any other entity, such as a business or other non-person entity. Social networking system information that is tracked and maintained by a social networking system may be stored as a social graph, which includes a plurality of nodes that are interconnected by a plurality of edges. A social graph node may represent a social networking system object that can act on and/or be acted upon by another node. A social networking system object may be, for example, a social networking system user, non-person entities, content items, groups, social networking system pages, events, messages, subjects (such as persons, places, things, abstract ideas or concepts), or other social networking system objects, such as movies, bands, or books.
An edge between nodes in a social graph represents a particular kind of connection between the nodes, which may result from an action that was performed by one of the nodes on the other node. Examples of such actions by a social networking system user include listing social networking system objects in a user profile, subscribing to or joining a social networking system group or fan page, sending a message to another social networking system user, making a purchase associated with a social networking system node, commenting on a content item, or RSVP'ing to an event.
A subset of a social graph may include a subject dictionary. A subject dictionary (hereinafter “dictionary”) includes a node for each possible topic that can be inferred from a user's status message. For example, dictionary nodes may represent particular people, locations, historical occurrences, times or dates, animals, plants, concepts, or any other subject matter. Edges between dictionary nodes may indicate a relationship between the subject matters represented by the nodes. For example, an edge may connect a “dog” dictionary node to an “animal” dictionary node to represent that a dog is a type of animal. Similarly, an edge may connect a “1942” dictionary node to a “World War II” node to represent that World War II took place, in part, in the year 1942. “Topic” as used herein refers to the definition, meaning, or subject of one or more words in a communication.
A social networking system may allow a user to communicate within certain social networking system spaces. For example, a user may post a message to the user's profile or wall or to another user's profile or wall, may comment on the user's content items or another user's content items (such as wall posts, images, videos, documents, etc.), may send an instant message or an email to another user, may post a message on a group wall or to a fan page, may ask a question to one or more other users, or any other form of communication within the social networking system. In addition, communications may originate external to the social networking system but may be received, organized and routed to a user within the social networking system. Alternatively, communications may originate from within the social networking system but may be transmitted outside the social networking system.
Communications by social networking system users are often plain text and are not manually associated by the users with established subjects. This limits the ability of the social networking system to correlate communications with particular subjects, and limits the functionality of displaying these correlations to users in conjunction with the communications. Further, words may have many meanings, and automated topic recognition may result in the meaning of ambiguous words being determined incorrectly. Thus, there is a need for a solution that determines the underlying topic of communications words, enhancing the richness of information connectivity with the social networking system, and providing a more enjoyable and useful experience to social networking system users.